-- stack: in -- format: 8 (HyperCard 1) -- flags: 0x1000 (none) -- protect password hash: 0 -- maximum user level: 5 (scripting) -- window: Rect(x1=0, y1=0, x2=0, y2=0) -- screen: Rect(x1=0, y1=0, x2=0, y2=0) -- card dimensions: w=0 h=0 -- scroll: x=0 y=0 -- background count: 1 -- first background id: 2592 -- card count: 1 -- first card id: 2852 -- list block id: 3265 -- print block id: 0 -- font table block id: 0 -- style table block id: 0 -- free block count: 0 -- free size: 0 bytes -- total size: 17152 bytes -- stack block size: 5120 bytes -- created by hypercard version: 0x01208000 -- compacted by hypercard version: 0x01208000 -- modified by hypercard version: 0x01208000 -- opened by hypercard version: 0x01228000 -- patterns[0]: 0x0000000000000000 -- patterns[1]: 0x8000000008000000 -- patterns[2]: 0x8800220088002200 -- patterns[3]: 0x8888222288882222 -- patterns[4]: 0x88AA22AA88AA22AA -- patterns[5]: 0xCCAA33AACCAA33AA -- patterns[6]: 0xEEAABBAAEEAABBAA -- patterns[7]: 0xEEBBBBEEEEBBBBEE -- patterns[8]: 0xFFBBFFEEFFBBFFEE -- patterns[9]: 0xFFBBFFFFFFBBFFFF -- patterns[10]: 0x8010022001084004 -- patterns[11]: 0xFFFFFFFFFFFFFFFF -- patterns[12]: 0x8822882288228822 -- patterns[13]: 0x1122448811224488 -- patterns[14]: 0xC4800C6843023026 -- patterns[15]: 0xB130031BD8C00C8D -- patterns[16]: 0xAA00AA00AA00AA00 -- patterns[17]: 0x8822552288225522 -- patterns[18]: 0x8855225588552255 -- patterns[19]: 0x77DD77DD77DD77DD -- patterns[20]: 0x8000000000000000 -- patterns[21]: 0xAA55AA55AA55AA55 -- patterns[22]: 0x038448300C020101 -- patterns[23]: 0x8244394482010101 -- patterns[24]: 0x8814224188412214 -- patterns[25]: 0x8080413E080814E3 -- patterns[26]: 0x22048C7422179810 -- patterns[27]: 0xBE808808EB088880 -- patterns[28]: 0x25C8328964244C92 -- patterns[29]: 0xA29C41BE2AC914EB -- patterns[30]: 0x40A00000040A0000 -- patterns[31]: 0x8040200002040800 -- patterns[32]: 0xAA00800088008000 -- patterns[33]: 0xFF80808080808080 -- patterns[34]: 0x081C22C180010204 -- patterns[35]: 0xFF808080FF080808 -- patterns[36]: 0xF87422478F172271 -- patterns[37]: 0xBF00BFBFB0B0B0B0 -- patterns[38]: 0xFF7FBE5DA2418000 -- patterns[39]: 0xFAF5FAF5A050A050 -- checksum: 0x0 ----- HyperTalk script ----- -- The scripts in this stack are ©1989 by Steve Martin on openstack global historymenu,temphistory if historymenu is empty then setuphistory put true into temphistory else put false into temphistory if the version < 1.2 then answer "Hypercard version 1.2 or greater required!" go home exit openstack end if get the topleft of card window show msg at 17,304 end openstack on closestack global historymenu,temphistory,historyindex,msghistory,history if temphistory then get deletemenu(historymenu) put empty into historymenu put empty into historyindex put empty into msghistory put empty into history put false into temphistory end if end closestack on arrowkey arrow global msghistory, historyindex if the optionkey is down then if arrow is up then add 1 to historyindex put unquotify(line historyindex of msghistory) into com if (the visible of msg) and (com is msg) then add 1 to historyindex get the number of lines of msghistory if historyindex > it then put 1 into historyindex put unquotify(line historyindex of msghistory) end if if arrow is down then subtract 1 from historyindex get the number of lines of msghistory if historyindex < 1 then put it into historyindex put unquotify(line historyindex of msghistory) end if else pass arrowkey end arrowkey on domenu which global msghistory,history if history is not empty then repeat with x = 1 to history if line x of msghistory is which then put unquotify(which) select empty type return exit domenu end if end repeat end if pass domenu end domenu on idle global msghistory, historyindex,historymenu,lasttick if historyindex is not empty and historymenu is not empty then if (the ticks-lasttick) > 120 then put the ticks into lasttick showmenu historymenu if historyindex > 0 and line historyindex of msghistory <> quotify(msg) then put 0 into historyindex end if end if end if pass idle end idle on returnkey global msghistory, historyindex, history,historymenu if historymenu is not empty then put quotify(the msg) into qmsg if line 1 of msghistory <> qmsg then put qmsg & return before msghistory if history > 1 then repeat with x = 2 to history get line x of msghistory if it is "none" then exit repeat if it is qmsg then delete line x of msghistory exit repeat end if end repeat end if repeat with x = 1 to history if line x of msghistory <> empty then changemenu historymenu,x,line x of msghistory enablemenu historymenu,x,true else exit repeat end repeat end if if the number of lines of msghistory > history then delete last line of msghistory end if put 0 into historyindex end if pass returnkey end returnkey on setuphistory global historyindex,history,historymenu put 0 into historyindex put 15 into history repeat with x = 1 to history put "none" into line x of temp end repeat if historymenu is empty then put newmenu("History",temp) into historymenu repeat with x = 1 to history enablemenu historymenu,x,false end repeat end if end setuphistory function quotify string put quote into q get offset(q,string) repeat while it > 0 put "''" into char it of string get offset(q,string) end repeat return string end quotify function unquotify string put "''" into q get offset(q,string) repeat while it > 0 put quote into char it to it+1 of string get offset(q,string) end repeat return string end unquotify --End of Command History Scripts